using System.CodeDom;
using CodeDomHelper.Types;
using System;
using System.Diagnostics;

namespace CodeDomHelper.CodeDom
{
    [DebuggerDisplay("{ParameterName}", Name = "ArgumentExp")]
    [Serializable()]
    [System.Diagnostics.DebuggerStepThrough()]
    public partial class ArgumentExp : CodeArgumentReferenceExpression
    {


        #region Ctor

        public ArgumentExp(string propertyName, string typeName)
            : base(propertyName)
        {
            
            Type = new TypeExp(typeName);
        }

        public ArgumentExp(string propertyName, Type type)
            : base(propertyName)
        {
            Type = new TypeExp(type);
        }

        public ArgumentExp(string propertyName, TypeExp type)
            : base(propertyName)
        {
            Type = new TypeExp(type);
        }

        public ArgumentExp(string propertyName, TypeExpression type)
            : base(propertyName)
        {
            Type = new TypeExp(type);
        }

        #endregion


        public TypeExp Type { get; private set; }

    }

}
